Completed
Push — master ( e0c1dc...c7ea8a )
by Justin
01:46
created

GedcomX.enableAtomExtensions   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 5
rs 9.4285
1
/**
2
 * A GEDCOM X document.
3
 * 
4
 * @constructor
5
 * @param {Object} [json]
0 ignored issues
show
Documentation introduced by
The parameter [json] does not exist. Did you maybe forget to remove this comment?
Loading history...
6
 */
7
var GedcomX = function(json){
8
  return new GedcomX.Root(json);
9
};
10
11
// Export early so that circular dependencies work properly
12
module.exports = GedcomX;
13
14
// Expose utils so that extension libraries can use them
15
GedcomX.utils = require('./utils');
16
17
// Expose all classes. They have to be included in order so that the inheritance
18
// hierarchy is properly assembled.
19
GedcomX.Base = require('./Base');
20
GedcomX.ExtensibleData = require('./core/ExtensibleData');
21
GedcomX.Conclusion = require('./core/Conclusion');
22
GedcomX.Subject = require('./core/Subject');
23
GedcomX.ResourceReference = require('./core/ResourceReference');
24
25
// The rest are listed alphabetically because they either extend Base or extend
26
// one of the classes included above.
27
GedcomX.Address = require('./core/Address');
28
GedcomX.Agent = require('./core/Agent');
29
GedcomX.Attribution = require('./core/Attribution');
30
GedcomX.Coverage = require('./core/Coverage');
31
GedcomX.Date = require('./core/Date');
32
GedcomX.Document = require('./core/Document');
33
GedcomX.Event = require('./core/Event');
34
GedcomX.EventRole = require('./core/EventRole');
35
GedcomX.EvidenceReference = require('./core/EvidenceReference');
36
GedcomX.Fact = require('./core/Fact');
37
GedcomX.Gender = require('./core/Gender');
38
GedcomX.Identifiers = require('./core/Identifiers');
39
GedcomX.Name = require('./core/Name');
40
GedcomX.NameForm = require('./core/NameForm');
41
GedcomX.NamePart = require('./core/NamePart');
42
GedcomX.Note = require('./core/Note');
43
GedcomX.OnlineAccount = require('./core/OnlineAccount');
44
GedcomX.Person = require('./core/Person');
45
GedcomX.PlaceDescription = require('./core/PlaceDescription');
46
GedcomX.PlaceReference = require('./core/PlaceReference');
47
GedcomX.Qualifier = require('./core/Qualifier');
48
GedcomX.Relationship = require('./core/Relationship');
49
GedcomX.Root = require('./core/Root');
50
GedcomX.SourceCitation = require('./core/SourceCitation');
51
GedcomX.SourceDescription = require('./core/SourceDescription');
52
GedcomX.SourceReference = require('./core/SourceReference');
53
GedcomX.TextValue = require('./core/TextValue');
54
55
/**
56
 * Enable a set of extensions
57
 * 
58
 * @param {Function} extensions
59
 */
60
GedcomX.addExtensions = function(extensions){
61
  if(typeof extensions === 'function'){
62
    extensions(this);
63
  }
64
};
65
66
/**
67
 * Enable the GedcomX RS Extensions
68
 */
69
GedcomX.enableRsExtensions = function(){
70
  this.addExtensions(require('./rs'));
71
};
72
73
/**
74
 * Enable the GedcomX Records Extensions
75
 */
76
GedcomX.enableRecordsExtensions = function(){
77
  this.addExtensions(require('./records'));
78
};
79
80
/**
81
 * Enable the GedcomX Atom Extensions. This depends on the RS extensions
82
 * so those will be enabled too.
83
 */
84
GedcomX.enableAtomExtensions = function(){
85
  this.enableRsExtensions(); // depends on RS extensions
86
  this.enableRecordsExtensions(); // depend on Record extensions
87
  this.addExtensions(require('./atom'));
88
};